home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et3_0-a1.lha / et3 / src / OneOfCluster.C < prev    next >
C/C++ Source or Header  |  1992-06-10  |  2KB  |  99 lines

  1. #ifdef __GNUG__
  2. #pragma implementation
  3. #endif
  4.  
  5. #include "OneOfCluster.h"
  6.  
  7. #include "Class.h"
  8. #include "Buttons.h"
  9. #include "OrdColl.h"
  10.  
  11. //---- OneOfCluster ------------------------------------------------------------
  12.  
  13. NewMetaImpl0(OneOfCluster,Cluster);
  14.  
  15. OneOfCluster::OneOfCluster(int id, VObjAlign a, Point g, SeqCollection *cp)
  16.                             : Cluster(id, a, g, cp)
  17. {
  18.     if (Size() > 0)
  19.     SetItemOn(At(0)->GetId());
  20. }
  21.  
  22. OneOfCluster::OneOfCluster(int id, VObjAlign a, Point g, VObject *va_(vop), ...)
  23.                             : Cluster(id, a, g)
  24. {
  25.     va_list ap;
  26.     va_start(ap,va_(vop));
  27.     SetItems(va_(vop), ap);
  28.     if (Size() > 0)
  29.     SetItemOn(At(0)->GetId());
  30.     va_end(ap);
  31. }
  32.  
  33. OneOfCluster::OneOfCluster(int id, VObject *va_(vop), ...) : Cluster(id, eVObjHLeft)
  34. {
  35.     va_list ap;
  36.     va_start(ap,va_(vop));
  37.     SetItems(va_(vop), ap);
  38.     if (Size() > 0)
  39.     SetItemOn(At(0)->GetId());
  40.     va_end(ap);
  41. }
  42.  
  43. OneOfCluster::OneOfCluster(int id, VObjAlign a, Point g, char *va_(cp), ...)
  44.                             : Cluster(id, a, g)
  45. {
  46.     char *t;
  47.     va_list ap;
  48.     va_start(ap,va_(cp));
  49.     
  50.     Add(new RadioButton(id+0, va_(cp)));
  51.     for (int i= 1; t= va_arg(ap, char*); i++)
  52.     Add(new RadioButton(id+i, t));
  53.     SetItemOn(At(0)->GetId());
  54.     va_end(ap);
  55. }
  56.  
  57. OneOfCluster::OneOfCluster(int id, char *va_(cp), ...) : Cluster(id, eVObjHLeft)
  58. {
  59.     char *t;
  60.     va_list ap;
  61.     va_start(ap,va_(cp));
  62.  
  63.     Add(new RadioButton(id+0, va_(cp)));
  64.     for (int i= 1; t= va_arg(ap, char*); i++)
  65.     Add(new RadioButton(id+i, t));
  66.     SetItemOn(At(0)->GetId());
  67.     va_end(ap);
  68. }
  69.  
  70. void OneOfCluster::SetValue(int id)
  71. {
  72.     Iter next(MakeIterator());
  73.     register VObject *dip;
  74.  
  75.     while (dip= (VObject*) next())
  76.     if (dip->IsKindOf(StateButton))
  77.         ((StateButton*)dip)->SetValue((int) dip->GetId() == id);
  78. }
  79.  
  80. int OneOfCluster::GetValue()
  81. {
  82.     Iter next(MakeIterator());
  83.     register VObject *dip;
  84.     
  85.     while (dip= (VObject*) next())
  86.     if (dip->IsKindOf(StateButton))
  87.         if (((StateButton*)dip)->GetValue())
  88.         return dip->GetId();
  89.     return cIdNone;
  90. }
  91.  
  92. void OneOfCluster::Control(int id, int part, void *v)
  93. {
  94.     if (part == cPartToggle) {
  95.     SetItemOn(id);
  96.     Cluster::Control(GetId(), id, v);
  97.     }
  98. }
  99.